/*
 * 文件名：CarInAndOutController.java	 
 * 时     间：下午8:07:54
 * 作     者：binghen       
 * 版     权： 2012-2022 湖南智软网络科技, 公司保留所有权利.
 * 联     系：http://www.073586.com/
 */
package com.local.controller.admin;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.local.entity.vo.CarInAndOutPhotoVo;
import com.local.model.CarParkIn;
import com.local.model.CarParkInCopy;
import com.local.model.CarParkOut;
import com.local.model.CarParkOutCopy;
import com.local.model.LocalCarInRepertory;
import com.local.page.CarInAndOutPageInfo;
import com.local.service.face.CarInAndOutService;
import com.local.service.face.ParkwellCarOutService;
import com.qianhai.common.constants.CommonContans;
import com.qianhai.common.controller.BaseController;
import com.qianhai.common.utils.Tools;

/**
 * 类描述:这里是类描述
 * 
 * @ClassName: CarInAndOutController
 * @author Administrator
 * @date 2015年4月12日 下午8:07:54
 */
@RestController
@RequestMapping(value = "/admin/inAndOutEx", method = RequestMethod.POST)
public class CarInAndOutExController extends BaseController
{
	
	@Autowired
	private ParkwellCarOutService carParkOutService;
	
	@Autowired
	protected CarInAndOutService carInAndOutService;
	
	/**
	 * 
	 * 方法描述： 查询列表
	 * 
	 * @Title: queryCarInCopyByPage
	 * @param @param page
	 * @param @return
	 * @return ModelMap
	 * @user Administrator 2015年4月2日
	 * @throws
	 */
	@RequestMapping(value = "/queryCarInCopyByPage.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarInCopyByPage(
			@RequestBody CarInAndOutPageInfo<CarParkInCopy> page)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.queryCarInCopyByPage(page);
			resultMap.put(CommonContans.STRUTS_DATA, page);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	/**
	 * 
	 * 方法描述： 查询列表
	 * 
	 * @Title: queryCarInByPage
	 * @param @param page
	 * @param @return
	 * @return ModelMap
	 * @user Administrator 2015年4月2日
	 * @throws
	 */
	@RequestMapping(value = "/queryCarInByPage.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarInByPage(
			@RequestBody CarInAndOutPageInfo<CarParkIn> page)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.queryCarInByPage(page);
			resultMap.put(CommonContans.STRUTS_DATA, page);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	
	/**
	 * 
	 * 方法描述： 查询列表
	 * 
	 * @Title: queryCarInByStationPage
	 * @param @param page
	 * @param @return
	 * @return ModelMap
	 * @user Administrator 2015年4月2日
	 * @throws
	 */
	@RequestMapping(value = "/queryCarInByStationPage.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarInByStationPage(
			@RequestBody CarInAndOutPageInfo<CarParkIn> page)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.queryCarInByStationPage(page);
			resultMap.put(CommonContans.STRUTS_DATA, page);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 查询最新进场车辆信息
	 * 
	 * @Title: queryNewCarIn
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月3日
	 * @throws
	 */
	@RequestMapping(value = "/queryNewCarIn.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryNewCarIn(String stationUuid)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			
			resultMap.put(CommonContans.STRUTS_DATA,
					carInAndOutService.queryNewCarIn(stationUuid));
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述：查询待进场
	 * 
	 * @Title: queryStayCarIn
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月3日
	 * @throws
	 */
	@RequestMapping(value = "/queryStayCarIn.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryStayCarIn(String stationUuid)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			
			resultMap.put(CommonContans.STRUTS_DATA,
					carInAndOutService.queryStayCarIn(stationUuid));
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	//通过岗亭查找所有待进场数据
	@RequestMapping(value = "/queryStayCarInByStation.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryStayCarInByStation(@RequestBody CarInAndOutPageInfo<CarParkIn> page)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.queryStayCarInByStation(page);
			resultMap.put(CommonContans.STRUTS_DATA,page);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 查询出场纪录
	 * 
	 * @Title: queryStayCarOut
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月3日
	 * @throws
	 */
	@RequestMapping(value = "/queryStayCarOut.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryStayCarOut(String stationUuid)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			
			resultMap.put(CommonContans.STRUTS_DATA,
					carInAndOutService.queryStayCarOut(stationUuid));
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 无进场信息，模糊查询列表
	 * 
	 * @Title: queryCarInByPage
	 * @param @param page
	 * @param @return
	 * @return ModelMap
	 * @user Administrator 2015年4月2日
	 * @throws
	 */
	@RequestMapping(value = "/queryLikeCarInByPage.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryLikeCarInByPage(
			@RequestBody CarInAndOutPageInfo<LocalCarInRepertory> page)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.queryLikeCarInByPage(page);
			
			resultMap.put(CommonContans.STRUTS_DATA, page);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	@RequestMapping(value = "/queryCarByPhoto.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarByPhoto(String uuid)
	{
		ModelMap resultMap = new ModelMap();
		try
		{
			CarInAndOutPhotoVo PhotoVo = carInAndOutService.returnPhotoVo(uuid);
			resultMap.put(CommonContans.STRUTS_DATA, PhotoVo);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	/**
	 * 
	 * 方法描述： 查询出场
	 * 
	 * @Title: queryCarOutByPage
	 * @param @param page
	 * @param @return
	 * @return ModelMap
	 * @user Administrator 2015年4月2日
	 * @throws
	 */
	@RequestMapping(value = "/queryCarOutCopyByPage.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarOutCopyByPage(
			@RequestBody CarInAndOutPageInfo<CarParkOutCopy> page)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.queryCarOutCopyByPage(page);
			resultMap.put(CommonContans.STRUTS_DATA, page);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 查询出场
	 * 
	 * @Title: queryCarOutByPage
	 * @param @param page
	 * @param @return
	 * @return ModelMap
	 * @user Administrator 2015年4月2日
	 * @throws
	 */
	@RequestMapping(value = "/queryCarOutByPage.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarOutByPage(
			@RequestBody CarInAndOutPageInfo<CarParkOut> page)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.queryCarOutByPage(page);
			resultMap.put(CommonContans.STRUTS_DATA, page);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述：通过进场uuid查询进场信息
	 * 
	 * @Title: queryCarInByUuid
	 * @param @param uuid
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月4日
	 * @throws
	 */
	@RequestMapping(value = "/queryCarInByUuid.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarInByUuid(String uuid)
	{
		ModelMap resultMap = new ModelMap();
		try
		{
			
			resultMap.put(CommonContans.STRUTS_DATA,
					carInAndOutService.queryCarInByUuid(uuid));
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 查询车辆出场
	 * 
	 * @Title: queryCarOutByUuid
	 * @param @param uuid
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月4日
	 * @throws
	 */
	@RequestMapping(value = "/queryCarOutByUuid.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap queryCarOutByUuid(String uuid)
	{
		ModelMap resultMap = new ModelMap();
		try
		{
			
			resultMap.put(CommonContans.STRUTS_DATA,
					carInAndOutService.queryCarOutByUuid(uuid));
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 批量删除carIn
	 * 
	 * @Title: deleteCarInInfo
	 * @param @param uuids
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月23日
	 * @throws
	 */
	@RequestMapping(value = "/deleteCarInInfo.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap deleteCarInInfo(String uuids)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			List<String> list = new ArrayList<String>();
			list.add(uuids);
			carInAndOutService.deleteCarInInfo(list);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 批量删除carInCopy
	 * 
	 * @Title: deleteCarInCopyInfo
	 * @param @param uuids
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月23日
	 * @throws
	 */
	@RequestMapping(value = "/deleteCarInCopyInfo.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap deleteCarInCopyInfo(@RequestBody List<String> uuids)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			carInAndOutService.deleteCarInCopyInfo(uuids);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 批量删除carOut
	 * 
	 * @Title: deleteCarOutInfo
	 * @param @param uuids
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月23日
	 * @throws
	 */
	@RequestMapping(value = "/deleteCarOutCopyInfo.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap deleteCarOutCopyInfo(String uuids)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			List<String> list = new ArrayList<String>();
			if(!Tools.isEmpty(uuids))
			list.add(uuids);
			carInAndOutService.deleteCarOutCopyInfo(list);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
	/**
	 * 
	 * 方法描述： 批量删除carOutCopy
	 * 
	 * @Title: deleteCarOutCopyInfo
	 * @param @param uuids
	 * @param @return
	 * @return ModelMap
	 * @user lyf 2015年11月23日
	 * @throws
	 */
	@RequestMapping(value = "/deleteCarOutInfo.action", consumes = "application/json", produces = "application/json")
	@ResponseBody
	public ModelMap deleteCarOutInfo(String uuids)
	{
		ModelMap resultMap = new ModelMap();
		
		try
		{
			List<String> list = new ArrayList<String>();
			list.add(uuids);
			carInAndOutService.deleteCarOutInfo(list);
			resultMap.put(CommonContans.STRUTS_RESULT,
					CommonContans.STRUTS_SUCCESS);
			
		} catch (Throwable e)
		{
			// 请保持所有代码一直性，没有特殊处理请使用该代码.
			this.printExction(resultMap, e);
		}
		return resultMap;
	}
	
}
